hhkb
모의해킹

호스트기반모의해킹_17_MySQL 취약점 진단

작성자 : Heehyeon Yoo|2025-11-29
# 모의해킹# Database# MySQL# 평문 저장# 암호화

1. 개요

MySQL은 세계적으로 가장 널리 사용되는 오픈소스 관계형 데이터베이스 관리 시스템(RDBMS)이다.

  • 포트: 기본적으로 TCP 3306 포트를 사용한다.
  • 주요 위협: 오래된 버전의 원격 코드 실행(RCE)보다는, 접근 제어 미흡(Misconfiguration)데이터 평문 저장이 더 빈번한 취약점이다.

2. 주요 진단 항목

2.1 접근 제어 및 기본 계정(Default Credentials)

  • 원격 접속 허용: root 계정이 로컬(Localhost)이 아닌 외부 IP에서도 접속 가능하도록 설정되었는지 확인한다.
  • 빈 비밀번호(Empty Password):
    • 일부 MySQL 설정은 root 계정의 비밀번호가 비어있어도 접속을 허용한다.
    • 진단: mysql -u root -h [Target_IP] -p(비밀번호 입력 시 그냥 Enter).

2.2 중요 데이터 저장 방식(Data At Rest)

데이터베이스 내부의 데이터가 안전하게 보관되고 있는지 확인한다.

  1. 평문 저장(Clear Text):
    • 개인정보(이름, 이메일)나 비밀번호가 암호화되지 않고 평문 그대로 저장되어 있는가?
    • 사례: SELECT * FROM users; 결과에 password123이 그대로 노출됨.
  2. 취약한 해시 알고리즘(Weak Hashing):
    • 비밀번호를 해시화했더라도, MD5SHA-1 같은 낡은 알고리즘을 사용했다면 해시 크래킹(Hash Cracking)을 통해 쉽게 평문화 가능하다.
    • 도구: hash-identifier로 해시 종류 식별.

3. 실무에서는?

  1. 거짓 양성(False Positive) 주의:
    • Nmap 스크립트(mysql-empty-password)가 "로그인 성공"이라고 보고해도, 실제 mysql 클라이언트로 접속해보면 안 되는 경우가 많다. 반드시 수동 검증(Manual Verification)을 거쳐야 한다.
  2. Credential Stuffing:
    • DB에서 탈취한 평문 비밀번호나 크래킹된 비밀번호는 다른 서비스(SSH, Admin Page)의 계정 정보일 확률이 매우 높다. 반드시 재사용 공격을 시도해봐야 한다.
  3. 버전별 취약점:
    • RCE 취약점(예: UDF Injection)은 환경 구성이 까다로워 성공률이 낮다. 오히려 "데이터베이스 설정과 저장 방식"의 기본기를 점검하는 것이 결과물 도출에 효율적이다.